package com.yss.reportworld.domain.rule;

import com.alibaba.excel.annotation.ExcelIgnore;
import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.extension.activerecord.Model;
import com.yss.common.core.annotation.EasyExcel;
import com.yss.common.core.annotation.ExcelValid;
import com.yss.common.core.utils.easyexecl.IntegerConverter;
import lombok.Data;
import lombok.EqualsAndHashCode;

import javax.validation.constraints.NotNull;

/**
 * 数据源配置_常量对象 rw_db_r_constant
 *
 * @author yss
 * @date 2023-07-25
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("rw_db_r_constant")
public class RConstant extends Model<RConstant> {
    public static final String SHEET_NAME = "常量列表";
    /**
     * ID
     */
    @ExcelIgnore
    @TableId("ID")
    private String id;

    @NotNull(message = "分类名称不可为空")
    @ExcelProperty({"常量列表", "分类"})
    @ExcelValid(message = "【常量列表】【常量列表】分类不能为空")
    private String typeName;

    @NotNull(message = "分类名称不可为空")
    @ExcelProperty({"常量列表", "分类标题"})
    @ExcelValid(message = "【常量列表】【常量列表】分类标题不能为空")
    private String typeTitle;
    /**
     * 类型(StringIntger)
     */
    @NotNull(message = "类型不可为空")
    @ExcelProperty(value = {"常量列表", "类型"}, converter = IntegerConverter.class)
    @EasyExcel(readConverterExp = "0=字符串,1=整型数字,2=浮点型数字,3=日期,4=时间,5=日期+时间,6=对象,7=布尔,8=常量,9=引用表")
    @ExcelValid(message = "【常量列表】【常量列表】类型不能为空")
    @TableField("TYPES")
    private Integer types;

    /**
     * 实际值
     */
    @NotNull(message = "实际值不可为空")
    @ExcelProperty({"常量列表", "实际值"})
    @TableField("TRUE_VAL")
    @ExcelValid(message = "【常量列表】【常量列表】实际值不能为空")
    private String trueVal;
    /**
     * 显示值
     */
    @NotNull(message = "显示值不可为空")
    @ExcelProperty({"常量列表", "显示值"})
    @TableField("SHOW_VAL")
    @ExcelValid(message = "【常量列表】【常量列表】显示值不能为空")
    private String showVal;

    /**
     * 常量分类表ID_外键
     */
    @ExcelIgnore
    @TableField("CONSTANT_ID")
    private String constantId;


    /**
     * 创建人
     */
    @ExcelIgnore
    @TableField("CREATE_USER")
    private String createUser;

    /**
     * 修改人
     */
    @ExcelIgnore
    @TableField("UPDATE_USER")
    private String updateUser;

    /**
     * 状态(逻辑删除状态)
     */
    @ExcelIgnore
    @TableField("STATUS")
    private Integer status;

    /**
     * 数据编码
     */
    @ExcelIgnore
    @TableField("RW_DB_ID")
    private String rwDbId;

}
